#ifndef __ALL_STRUCT_H__
#define __ALL_STRUCT_H__

// 宏定义：最大餐馆数量、每个餐馆的最大窗口数、每个窗口的最大菜品数
#define MAX_DISH_PER_WINDOW 50   // 每个窗口最多50道菜
#define MAX_WINDOW_PER_RESTAURANT 10  // 每个餐馆最多10个窗口
#define DISH_NAME_LEN 50         // 菜品名称最大长度

// 1. 菜品结构体
typedef struct {
    int id;               // 菜品编号（确保唯一）
    char name[DISH_NAME_LEN];  // 菜品名称
    float price;          // 菜品价格
    int stock;            // 用于dishes数组：剩余库存；用于Orders数组：购买数量
} Dish;	

// 2. 窗口结构体
typedef struct {
    int window_id;        // 餐馆内唯一窗口编号（不可重复）
    char window_name[30]; // 窗口名称
    int dish_count;       // 当前窗口的菜品总数（dishes数组有效元素数）
    int order_count;      // 当前窗口的订单菜品总数（Orders数组有效元素数）
    int window_state;     // 1=营业，0=打烊
    Dish Orders[MAX_DISH_PER_WINDOW];  // 窗口的订单菜品数组
    Dish dishes[MAX_DISH_PER_WINDOW];  // 窗口的菜品数组
} Window;

// 3. 餐馆结构体
typedef struct {
    char restaurant_name[50];  // 餐馆名称
    int window_count;          // 当前餐馆的有效窗口总数
    Window windows[MAX_WINDOW_PER_RESTAURANT];  // 窗口数组
} Restaurant;

#endif